﻿using System;
using System.Collections.Generic;

namespace Fuse8.ContentManagementFramework.Domain.Bases
{
    public abstract class BaseEmail<T> where T : class, new()
    {
        #region Properties

        public virtual IEnumerable<string> To { get; set; }

        public virtual string From { get; set; }

        public virtual string Bcc { get; set; }

        public virtual string Subject { get; set; }

        public virtual string Body { get; set; }

        public virtual T Model { get; set; }

        public virtual string TemplateUrl { get; set; }

        public virtual Dictionary<string, string> ReplacementProperties { get; protected set; }

        #endregion

        #region Methods

        public abstract void Prepare();

        #endregion
    }
}
